import React, { Component } from 'react'
/*
  setState的扩展
  1、setState是同步的还是异步的
  1）如果你的版本是React18.1.0之前的版本，react在如下情况下是同步的
     1.1) 在setTimeout等定时器是同步的，但是之后的版本setTimeout也是异步
  2、调用的事件处理函数中，不管执行多少次setState()都会执行一次
  3、setState的最佳实践
    把第一个参数不要写成对象，写成回调函数
    第二个参数就是更新后的回调
*/
export default class App extends Component {
  state={
    count:0
  }
  increment=()=>{
    console.log('更新前state中count数据:',this.state.count);
    this.setState(()=>{
      return{
        count:this.state.count+1
      }
    },()=>{
      console.log('更新后state中count数据:',this.state.count);
    })
  }
  render() {
    console.log('-------render-------------');
    return (
      <div>
        <h2>{this.state.count}</h2>
        <button onClick={this.increment}>+</button>
      </div>
    )
  }
}
